#pragma once
#ifndef GAME_H
#define GAME_H
// Includes
#include <Core.h>
// Managers
#include <EntityManager.h>
#include <MessageHandler.h>
//#include <Animation.h>
#include <AnimationPlayer.h>
#include <ForceRegistry.h>
#include <StateMachine.h>
// Entites
#include "Player.h"

class Game : public Core
{
private:
	D3DVIEWPORT9 viewport;

	IDirect3DTexture9* playerRunTexture;
	IDirect3DTexture9* playerIdleTexture;
	// Declare entites
	Player* player;
	// Player Textures
public:
	// StateMachine used for switching game states.
	StateMachine<Game> stateMachine;


	// Methods
	Game(HINSTANCE hInstance, int nShowCmd);
	virtual ~Game();
	void initialise();
	void loadContent();
	void unloadContent();
	void update(float frameTime);
	void render();
};

#endif // GAME_H